Trò chơi Tic-Tac-Toe, game đánh caro full source code
53.511 lượt xem;
- RPGCamera.cs
- Scripts /
- DemoRPGMovement /
- Demos /
- Photon Unity Networking /
- Assets /
- project /
1 using UnityEngine;
2 using System.Collections;
3
4 public class RPGCamera : MonoBehaviour
5 {
6 public Transform Target;
7
8 public float MaximumDistance;
9 public float MinimumDistance;
10
11 public float ScrollModifier;
12 public float TurnModifier;
13
14 Transform m_CameraTransform;
15
16 Vector3 m_LookAtPoint;
17 Vector3 m_LocalForwardVector;
18 float m_Distance;
19
20 void Start()
21 {
22 m_CameraTransform = transform.GetChild( 0 );
23 m_LocalForwardVector = m_CameraTransform.forward;
24
25 m_Distance = -m_CameraTransform.localPosition.z / m_CameraTransform.forward.z;
26 m_Distance = Mathf.Clamp( m_Distance, MinimumDistance, MaximumDistance );
27 m_LookAtPoint = m_CameraTransform.localPosition + m_LocalForwardVector * m_Distance;
28 }
29
30 void LateUpdate()
31 {
32 UpdateDistance();
33 UpdateZoom();
34 UpdatePosition();
35 UpdateRotation();
36 }
37
38 void UpdateDistance()
39 {
40 m_Distance = Mathf.Clamp( m_Distance - Input.GetAxis( "Mouse ScrollWheel" ) * ScrollModifier, MinimumDistance, MaximumDistance );
41 }
42
43 void UpdateZoom()
44 {
45 m_CameraTransform.localPosition = m_LookAtPoint - m_LocalForwardVector * m_Distance;
46 }
47
48 void UpdatePosition()
49 {
50 if( Target == null )
51 {
52 return;
53 }
54
55 transform.position = Target.transform.position;
56 }
57
58 void UpdateRotation()
59 {
60 if( Input.GetMouseButton( 0 ) == true || Input.GetMouseButton( 1 ) == true )
61 {
62 transform.Rotate( 0, Input.GetAxis( "Mouse X" ) * TurnModifier, 0 );
63 }
64
65 if( Input.GetMouseButton( 1 ) == true && Target != null )
66 {
67 Target.rotation = Quaternion.Euler( 0, transform.rotation.eulerAngles.y, 0 );
68 }
69 }
70 }
2 using System.Collections;
3
4 public class RPGCamera : MonoBehaviour
5 {
6 public Transform Target;
7
8 public float MaximumDistance;
9 public float MinimumDistance;
10
11 public float ScrollModifier;
12 public float TurnModifier;
13
14 Transform m_CameraTransform;
15
16 Vector3 m_LookAtPoint;
17 Vector3 m_LocalForwardVector;
18 float m_Distance;
19
20 void Start()
21 {
22 m_CameraTransform = transform.GetChild( 0 );
23 m_LocalForwardVector = m_CameraTransform.forward;
24
25 m_Distance = -m_CameraTransform.localPosition.z / m_CameraTransform.forward.z;
26 m_Distance = Mathf.Clamp( m_Distance, MinimumDistance, MaximumDistance );
27 m_LookAtPoint = m_CameraTransform.localPosition + m_LocalForwardVector * m_Distance;
28 }
29
30 void LateUpdate()
31 {
32 UpdateDistance();
33 UpdateZoom();
34 UpdatePosition();
35 UpdateRotation();
36 }
37
38 void UpdateDistance()
39 {
40 m_Distance = Mathf.Clamp( m_Distance - Input.GetAxis( "Mouse ScrollWheel" ) * ScrollModifier, MinimumDistance, MaximumDistance );
41 }
42
43 void UpdateZoom()
44 {
45 m_CameraTransform.localPosition = m_LookAtPoint - m_LocalForwardVector * m_Distance;
46 }
47
48 void UpdatePosition()
49 {
50 if( Target == null )
51 {
52 return;
53 }
54
55 transform.position = Target.transform.position;
56 }
57
58 void UpdateRotation()
59 {
60 if( Input.GetMouseButton( 0 ) == true || Input.GetMouseButton( 1 ) == true )
61 {
62 transform.Rotate( 0, Input.GetAxis( "Mouse X" ) * TurnModifier, 0 );
63 }
64
65 if( Input.GetMouseButton( 1 ) == true && Target != null )
66 {
67 Target.rotation = Quaternion.Euler( 0, transform.rotation.eulerAngles.y, 0 );
68 }
69 }
70 }